[INFO] fetching crate llm-stack-core 0.1.1...
[INFO] testing llm-stack-core-0.1.1 against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] extracting crate llm-stack-core 0.1.1 into /workspace/builds/worker-6-tc1/source
[INFO] started tweaking crates.io crate llm-stack-core 0.1.1
[INFO] finished tweaking crates.io crate llm-stack-core 0.1.1
[INFO] tweaked toml for crates.io crate llm-stack-core 0.1.1 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate llm-stack-core 0.1.1 on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate llm-stack-core 0.1.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded schemars_derive v1.2.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b3346014245e5f8c3e35fb636e6cad4c3e4304882b7fe6d31b7e1731870bfb9b
[INFO] running `Command { std: "docker" "start" "-a" "b3346014245e5f8c3e35fb636e6cad4c3e4304882b7fe6d31b7e1731870bfb9b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b3346014245e5f8c3e35fb636e6cad4c3e4304882b7fe6d31b7e1731870bfb9b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b3346014245e5f8c3e35fb636e6cad4c3e4304882b7fe6d31b7e1731870bfb9b", kill_on_drop: false }`
[INFO] [stdout] b3346014245e5f8c3e35fb636e6cad4c3e4304882b7fe6d31b7e1731870bfb9b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6c2dfc9fe00806f96be4712e42af0c628c6f4e84c259368f010de1d04f689424
[INFO] running `Command { std: "docker" "start" "-a" "6c2dfc9fe00806f96be4712e42af0c628c6f4e84c259368f010de1d04f689424", kill_on_drop: false }`
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling zerocopy v0.8.38
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling zmij v1.0.19
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling borrow-or-share v0.2.4
[INFO] [stderr]    Compiling ryu v1.0.22
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling outref v0.5.2
[INFO] [stderr]    Compiling uuid v1.20.0
[INFO] [stderr]    Compiling vsimd v0.8.0
[INFO] [stderr]    Compiling fraction v0.15.3
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling num-cmp v0.1.0
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling uuid-simd v0.8.0
[INFO] [stderr]    Compiling bytecount v0.6.9
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling fancy-regex v0.14.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling fluent-uri v0.3.2
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling email_address v0.2.9
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling referencing v0.29.1
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling jsonschema v0.29.1
[INFO] [stderr]    Compiling llm-stack-core v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 40s
[INFO] running `Command { std: "docker" "inspect" "6c2dfc9fe00806f96be4712e42af0c628c6f4e84c259368f010de1d04f689424", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6c2dfc9fe00806f96be4712e42af0c628c6f4e84c259368f010de1d04f689424", kill_on_drop: false }`
[INFO] [stdout] 6c2dfc9fe00806f96be4712e42af0c628c6f4e84c259368f010de1d04f689424
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] aaf76468c85ac1a7640c0f03fb79f8018da29f4064704ac00ff25b2c7111f94d
[INFO] running `Command { std: "docker" "start" "-a" "aaf76468c85ac1a7640c0f03fb79f8018da29f4064704ac00ff25b2c7111f94d", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling jsonschema v0.29.1
[INFO] [stderr]    Compiling llm-stack-core v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 33.13s
[INFO] running `Command { std: "docker" "inspect" "aaf76468c85ac1a7640c0f03fb79f8018da29f4064704ac00ff25b2c7111f94d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aaf76468c85ac1a7640c0f03fb79f8018da29f4064704ac00ff25b2c7111f94d", kill_on_drop: false }`
[INFO] [stdout] aaf76468c85ac1a7640c0f03fb79f8018da29f4064704ac00ff25b2c7111f94d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 9d841c986e5ab8549496620a67f56e45efb7b440a6f8041fd45b762ee9de72af
[INFO] running `Command { std: "docker" "start" "-a" "9d841c986e5ab8549496620a67f56e45efb7b440a6f8041fd45b762ee9de72af", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.49s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/llm_stack_core-06f6fe6be9c15d10)
[INFO] [stdout] 
[INFO] [stdout] running 362 tests
[INFO] [stdout] test chat::tests::test_assistant_constructor ... ok
[INFO] [stdout] test chat::tests::test_assistant_constructor_produces_text_only ... ok
[INFO] [stdout] test chat::tests::test_assistant_tool_calls_is_valid_combination ... ok
[INFO] [stdout] test chat::tests::test_chat_message_json_roundtrip ... ok
[INFO] [stdout] test chat::tests::test_chat_message_json_roundtrip_with_tool_result ... ok
[INFO] [stdout] test chat::tests::test_chat_message_to_json ... ok
[INFO] [stdout] test chat::tests::test_chat_response_empty_content ... ok
[INFO] [stdout] test chat::tests::test_chat_response_metadata ... ok
[INFO] [stdout] test chat::tests::test_chat_response_serde_roundtrip ... ok
[INFO] [stdout] test chat::tests::test_chat_response_text_none_when_empty ... ok
[INFO] [stdout] test chat::tests::test_chat_response_text_none_when_no_text_blocks ... ok
[INFO] [stdout] test chat::tests::test_chat_response_text_returns_first ... ok
[INFO] [stdout] test chat::tests::test_chat_response_tool_calls ... ok
[INFO] [stdout] test chat::tests::test_chat_response_tool_calls_empty_when_text_only ... ok
[INFO] [stdout] test chat::tests::test_chat_role_all_variants ... ok
[INFO] [stdout] test chat::tests::test_chat_role_copy_hash ... ok
[INFO] [stdout] test chat::tests::test_chat_role_display ... ok
[INFO] [stdout] test chat::tests::test_chat_role_serde_roundtrip ... ok
[INFO] [stdout] test chat::tests::test_content_block_image_base64 ... ok
[INFO] [stdout] test chat::tests::test_content_block_image_url ... ok
[INFO] [stdout] test chat::tests::test_content_block_reasoning ... ok
[INFO] [stdout] test chat::tests::test_content_block_serde_image ... ok
[INFO] [stdout] test chat::tests::test_content_block_serde_reasoning ... ok
[INFO] [stdout] test chat::tests::test_content_block_serde_text ... ok
[INFO] [stdout] test chat::tests::test_content_block_serde_tool_call ... ok
[INFO] [stdout] test chat::tests::test_content_block_serde_tool_result ... ok
[INFO] [stdout] test chat::tests::test_image_source_from_url_invalid ... ok
[INFO] [stdout] test chat::tests::test_image_source_from_url_normalizes ... ok
[INFO] [stdout] test chat::tests::test_image_source_from_url_valid ... ok
[INFO] [stdout] test chat::tests::test_message_is_empty ... ok
[INFO] [stdout] test chat::tests::test_message_mixed_content ... ok
[INFO] [stdout] test chat::tests::test_message_serde_roundtrip ... ok
[INFO] [stdout] test chat::tests::test_message_text_clone_eq ... ok
[INFO] [stdout] test chat::tests::test_message_tool_result ... ok
[INFO] [stdout] test chat::tests::test_message_tool_use ... ok
[INFO] [stdout] test chat::tests::test_stop_reason_all_variants ... ok
[INFO] [stdout] test chat::tests::test_stop_reason_display ... ok
[INFO] [stdout] test chat::tests::test_stop_reason_eq_hash ... ok
[INFO] [stdout] test chat::tests::test_stop_reason_serde_roundtrip ... ok
[INFO] [stdout] test chat::tests::test_system_constructor ... ok
[INFO] [stdout] test chat::tests::test_system_constructor_produces_text_only ... ok
[INFO] [stdout] test chat::tests::test_tool_call_json_arguments ... ok
[INFO] [stdout] test chat::tests::test_tool_error_constructor ... ok
[INFO] [stdout] test chat::tests::test_tool_error_constructor_produces_tool_result_only ... ok
[INFO] [stdout] test chat::tests::test_tool_result_constructor ... ok
[INFO] [stdout] test chat::tests::test_tool_result_constructor_produces_tool_result_only ... ok
[INFO] [stdout] test chat::tests::test_tool_result_error_flag ... ok
[INFO] [stdout] test chat::tests::test_user_constructor ... ok
[INFO] [stdout] test chat::tests::test_user_constructor_produces_text_only ... ok
[INFO] [stdout] test chat::tests::test_user_with_image_is_valid_combination ... ok
[INFO] [stdout] test context::tests::test_available_saturates ... ok
[INFO] [stdout] test context::tests::test_available_tokens ... ok
[INFO] [stdout] test context::tests::test_clear ... ok
[INFO] [stdout] test context::tests::test_compact_all_compactable ... ok
[INFO] [stdout] test context::tests::test_compact_none_compactable ... ok
[INFO] [stdout] test context::tests::test_compact_then_add_summary ... ok
[INFO] [stdout] test context::tests::test_compact_with_protected ... ok
[INFO] [stdout] test context::tests::test_context_window_debug ... ok
[INFO] [stdout] test context::tests::test_context_window_is_send_sync ... ok
[INFO] [stdout] test context::tests::test_estimate_message_tokens ... ok
[INFO] [stdout] test context::tests::test_estimate_message_tokens_empty ... ok
[INFO] [stdout] test context::tests::test_estimate_tokens_empty ... ok
[INFO] [stdout] test context::tests::test_estimate_tokens_exact_multiple ... ok
[INFO] [stdout] test context::tests::test_estimate_tokens_medium ... ok
[INFO] [stdout] test context::tests::test_estimate_tokens_minimum ... ok
[INFO] [stdout] test context::tests::test_estimate_tokens_short ... ok
[INFO] [stdout] test context::tests::test_is_protected ... ok
[INFO] [stdout] test context::tests::test_iter ... ok
[INFO] [stdout] test context::tests::test_messages ... ok
[INFO] [stdout] test context::tests::test_messages_owned ... ok
[INFO] [stdout] test context::tests::test_needs_compaction_above_threshold ... ok
[INFO] [stdout] test context::tests::test_needs_compaction_at_threshold ... ok
[INFO] [stdout] test context::tests::test_needs_compaction_below_threshold ... ok
[INFO] [stdout] test context::tests::test_needs_compaction_zero_budget ... ok
[INFO] [stdout] test context::tests::test_new_context_window ... ok
[INFO] [stdout] test chat::tests::test_chat_message_from_json ... ok
[INFO] [stdout] test chat::tests::test_assistant_with_reasoning_is_valid_combination ... ok
[INFO] [stdout] test context::tests::test_protect_index ... ok
[INFO] [stdout] test context::tests::test_protect_recent ... ok
[INFO] [stdout] test context::tests::test_protect_recent_more_than_len ... ok
[INFO] [stdout] test context::tests::test_push_and_len ... ok
[INFO] [stdout] test context::tests::test_total_tokens ... ok
[INFO] [stdout] test context::tests::test_typical_conversation_flow ... ok
[INFO] [stdout] test context::tests::test_token_count ... ok
[INFO] [stdout] test context::tests::test_unprotect ... ok
[INFO] [stdout] test context::tests::test_update_token_count ... ok
[INFO] [stdout] test error::tests::test_error_display_auth ... ok
[INFO] [stdout] test error::tests::test_error_display_http ... ok
[INFO] [stdout] test error::tests::test_error_display_invalid_request ... ok
[INFO] [stdout] test error::tests::test_error_display_max_depth_exceeded ... ok
[INFO] [stdout] test error::tests::test_error_display_provider ... ok
[INFO] [stdout] test error::tests::test_error_display_response_format ... ok
[INFO] [stdout] test error::tests::test_error_display_retry_exhausted ... ok
[INFO] [stdout] test error::tests::test_error_display_schema_validation ... ok
[INFO] [stdout] test error::tests::test_error_display_timeout ... ok
[INFO] [stdout] test error::tests::test_error_retry_exhausted_source_chain ... ok
[INFO] [stdout] test error::tests::test_error_display_tool_execution ... ok
[INFO] [stdout] test error::tests::test_error_is_send_sync ... ok
[INFO] [stdout] test error::tests::test_error_max_depth_not_retryable ... ok
[INFO] [stdout] test error::tests::test_error_retryable_http ... ok
[INFO] [stdout] test error::tests::test_error_retryable_provider ... ok
[INFO] [stdout] test error::tests::test_from_serde_json_error ... ok
[INFO] [stdout] test intercept::tests::approval_tests::approval_allow ... ok
[INFO] [stdout] test intercept::tests::approval_tests::approval_debug ... ok
[INFO] [stdout] test error::tests::test_error_source_trait ... ok
[INFO] [stdout] test intercept::tests::approval_tests::approval_modify ... ok
[INFO] [stdout] test intercept::tests::approval_tests::approval_deny ... ok
[INFO] [stdout] test intercept::tests::empty_stack_passthrough ... ok
[INFO] [stdout] test intercept::tests::execute_with_closure ... ok
[INFO] [stdout] test error::tests::test_error_retry_exhausted_nests ... ok
[INFO] [stdout] test intercept::tests::next_is_copy ... ok
[INFO] [stdout] test intercept::tests::interceptor_ordering ... ok
[INFO] [stdout] test intercept::tests::multiple_noop_interceptors ... ok
[INFO] [stdout] test intercept::tests::noop_interceptor_passthrough ... ok
[INFO] [stdout] test intercept::tests::shared_interceptor ... ok
[INFO] [stdout] test intercept::tests::short_circuit_interceptor ... ok
[INFO] [stdout] test intercept::tests::stack_len_and_is_empty ... ok
[INFO] [stdout] test intercept::tests::timeout_success ... ok
[INFO] [stdout] test mcp::tests::test_mcp_tool_execution ... ok
[INFO] [stdout] test mcp::tests::test_register_mcp_service ... ok
[INFO] [stdout] test mcp::tests::test_register_mcp_tools_by_name ... ok
[INFO] [stdout] test mcp::tests::test_trait_is_object_safe ... ok
[INFO] [stdout] test mock::tests::test_dyn_provider_blanket_impl ... ok
[INFO] [stdout] test mock::tests::test_dyn_provider_boxed_storage ... ok
[INFO] [stdout] test mock::tests::test_dyn_provider_error_propagation ... ok
[INFO] [stdout] test intercept::tests::retry_exhausted ... ok
[INFO] [stdout] test mock::tests::test_dyn_provider_metadata_matches ... ok
[INFO] [stdout] test mock::tests::test_dyn_provider_stream_blanket ... ok
[INFO] [stdout] test mock::tests::test_mock_concurrent_access ... ok
[INFO] [stdout] test mock::tests::test_mock_error_into_llm_error_all_variants ... ok
[INFO] [stdout] test mock::tests::test_mock_generate_error ... ok
[INFO] [stdout] test mock::tests::test_mock_generate_mixed_queue ... ok
[INFO] [stdout] test mock::tests::test_mock_generate_multiple_queued ... ok
[INFO] [stdout] test mock::tests::test_mock_generate_returns_queued ... ok
[INFO] [stdout] test mock::tests::test_mock_metadata_returns_configured ... ok
[INFO] [stdout] test mock::tests::test_mock_provider_debug ... ok
[INFO] [stdout] test mock::tests::test_mock_records_calls ... ok
[INFO] [stdout] test mock::tests::test_mock_records_params_accurately ... ok
[INFO] [stdout] test mock::tests::test_mock_stream_empty_events ... ok
[INFO] [stdout] test mock::tests::test_mock_stream_error ... ok
[INFO] [stdout] test provider::tests::test_capability_copy ... ok
[INFO] [stdout] test intercept::tests::retry_succeeds_after_failures ... ok
[INFO] [stdout] test mock::tests::test_mock_stream_returns_events ... ok
[INFO] [stdout] test mock::tests::test_provider_is_object_safe ... ok
[INFO] [stdout] test provider::tests::test_capability_hash_set ... ok
[INFO] [stdout] test provider::tests::test_capability_serde_roundtrip ... ok
[INFO] [stdout] test provider::tests::test_chat_params_defaults ... ok
[INFO] [stdout] test provider::tests::test_chat_params_full ... ok
[INFO] [stdout] test provider::tests::test_chat_params_serde_roundtrip_skips_timeout_and_headers ... ok
[INFO] [stdout] test provider::tests::test_chat_params_serde_roundtrip_with_metadata ... ok
[INFO] [stdout] test provider::tests::test_json_schema_from_type_simple ... ok
[INFO] [stdout] test provider::tests::test_json_schema_serde_roundtrip ... ok
[INFO] [stdout] test provider::tests::test_json_schema_clone_eq ... ok
[INFO] [stdout] test intercept::tests::timeout_expires ... ok
[INFO] [stdout] test provider::tests::test_json_schema_from_raw ... ok
[INFO] [stdout] test provider::tests::test_provider_metadata_clone_eq ... ok
[INFO] [stdout] test provider::tests::test_provider_metadata_owned_name ... ok
[INFO] [stdout] test provider::tests::test_provider_metadata_serde_roundtrip ... ok
[INFO] [stdout] test provider::tests::test_tool_choice_all_variants ... ok
[INFO] [stdout] test provider::tests::test_tool_choice_serde_roundtrip ... ok
[INFO] [stdout] test provider::tests::test_tool_definition_serde_roundtrip ... ok
[INFO] [stdout] test registry::tests::test_built_provider_works ... ok
[INFO] [stdout] test registry::tests::test_provider_config_builder ... ok
[INFO] [stdout] test registry::tests::test_provider_config_extra_types ... ok
[INFO] [stdout] test registry::tests::test_registry_providers_list ... ok
[INFO] [stdout] test registry::tests::test_registry_register_and_build ... ok
[INFO] [stdout] test registry::tests::test_registry_replace_factory ... ok
[INFO] [stdout] test registry::tests::test_registry_unknown_provider ... ok
[INFO] [stdout] test registry::tests::test_registry_unregister ... ok
[INFO] [stdout] test stream::tests::test_chat_stream_collect ... ok
[INFO] [stdout] test stream::tests::test_chat_stream_error_mid_stream ... ok
[INFO] [stdout] test stream::tests::test_chat_stream_is_send ... ok
[INFO] [stdout] test stream::tests::test_stream_event_done ... ok
[INFO] [stdout] test stream::tests::test_stream_event_reasoning_delta_eq ... ok
[INFO] [stdout] test stream::tests::test_stream_event_text_delta_eq ... ok
[INFO] [stdout] test stream::tests::test_stream_event_tool_call_complete ... ok
[INFO] [stdout] test stream::tests::test_stream_event_tool_call_delta ... ok
[INFO] [stdout] test stream::tests::test_stream_event_tool_call_start ... ok
[INFO] [stdout] test stream::tests::test_stream_event_usage ... ok
[INFO] [stdout] test structured::tests::test_collect_stream_object_empty_stream ... ok
[INFO] [stdout] test provider::tests::test_json_schema_validate_invalid_schema ... ok
[INFO] [stdout] test structured::tests::test_collect_stream_object_invalid_json ... ok
[INFO] [stdout] test structured::tests::test_collect_stream_object_mid_stream_error ... ok
[INFO] [stdout] test context::tests::test_new_invalid_reserved - should panic ... ok
[INFO] [stdout] test context::tests::test_new_reserved_exceeds_max - should panic ... ok
[INFO] [stdout] test structured::tests::test_generate_object_config_default ... ok
[INFO] [stdout] test structured::tests::test_generate_object_invalid_json ... ok
[INFO] [stdout] test structured::tests::test_generate_object_no_text_content ... ok
[INFO] [stdout] test structured::tests::test_collect_stream_object_schema_violation ... ok
[INFO] [stdout] test structured::tests::test_generate_object_provider_error_propagates ... ok
[INFO] [stdout] test provider::tests::test_json_schema_validate_missing_field ... ok
[INFO] [stdout] test structured::tests::test_collect_stream_object_happy_path ... ok
[INFO] [stdout] test provider::tests::test_json_schema_validate_valid ... ok
[INFO] [stdout] test structured::tests::test_generate_object_result_debug ... ok
[INFO] [stdout] test structured::tests::test_generate_object_retry_succeeds_on_second_attempt ... ok
[INFO] [stdout] test structured::tests::test_generate_object_retry_exhausted ... ok
[INFO] [stdout] test provider::tests::test_json_schema_validate_wrong_type ... ok
[INFO] [stdout] test structured::tests::test_generate_object_happy_path ... ok
[INFO] [stdout] test structured::tests::test_generate_object_wrong_type ... ok
[INFO] [stdout] test structured::tests::test_generate_object_schema_violation ... ok
[INFO] [stdout] test structured::tests::test_generate_object_sets_structured_output ... ok
[INFO] [stdout] test structured::tests::test_generate_object_system_prompt_appends ... ok
[INFO] [stdout] test structured::tests::test_generate_object_system_prompt_fallback ... ok
[INFO] [stdout] test structured::tests::test_generate_object_zero_attempts_errors ... ok
[INFO] [stdout] test structured::tests::test_inject_schema_prompt_new ... ok
[INFO] [stdout] test structured::tests::test_partial_object_debug ... ok
[INFO] [stdout] test structured::tests::test_stream_object_async_sets_structured_output ... ok
[INFO] [stdout] test structured::tests::test_inject_schema_prompt_appends ... ok
[INFO] [stdout] test structured::tests::test_stream_object_async_end_to_end ... ok
[INFO] [stdout] test test_helpers::tests::test_mock_for_helper ... ok
[INFO] [stdout] test test_helpers::tests::test_collect_stream_empty ... ok
[INFO] [stdout] test test_helpers::tests::test_collect_stream_happy ... ok
[INFO] [stdout] test test_helpers::tests::test_sample_response_is_valid ... ok
[INFO] [stdout] test structured::tests::test_generate_object_retry_appends_feedback ... ok
[INFO] [stdout] test test_helpers::tests::test_collect_stream_results_with_errors ... ok
[INFO] [stdout] test test_helpers::tests::test_helper_messages ... ok
[INFO] [stdout] test test_helpers::tests::test_mock_for_custom_name ... ok
[INFO] [stdout] test test_helpers::tests::test_sample_tool_response ... ok
[INFO] [stdout] test tool::depth::tests::test_unit_with_depth_ignores_value ... ok
[INFO] [stdout] test test_helpers::tests::test_sample_usage_fields ... ok
[INFO] [stdout] test tool::depth::tests::test_custom_context_depth ... ok
[INFO] [stdout] test tool::depth::tests::test_depth_increments ... ok
[INFO] [stdout] test tool::depth::tests::test_unit_loop_depth ... ok
[INFO] [stdout] test tool::tests::test_compute_tool_calls_signature_empty ... ok
[INFO] [stdout] test tool::tests::test_compute_tool_calls_signature_single ... ok
[INFO] [stdout] test tool::tests::test_compute_tool_calls_signature_multiple ... ok
[INFO] [stdout] test tool::tests::test_fn_tool_handler ... ok
[INFO] [stdout] test tool::tests::test_loop_action_equality ... ok
[INFO] [stdout] test tool::tests::test_loop_detection_config_default ... ok
[INFO] [stdout] test tool::tests::test_loop_detection_state_detects_loop ... ok
[INFO] [stdout] test tool::tests::test_loop_detection_state_no_loop ... ok
[INFO] [stdout] test tool::tests::test_loop_detection_state_reset ... ok
[INFO] [stdout] test tool::tests::test_registry_debug ... ok
[INFO] [stdout] test tool::tests::test_registry_empty ... ok
[INFO] [stdout] test tool::tests::test_registry_execute_all_parallel ... ok
[INFO] [stdout] test tool::tests::test_registry_definitions ... ok
[INFO] [stdout] test tool::loop_channel::tests::test_tool_loop_channel_consumer_drop ... ok
[INFO] [stdout] test tool::loop_channel::tests::test_tool_loop_channel_basic ... ok
[INFO] [stdout] test tool::tests::test_registry_execute_all_sequential ... ok
[INFO] [stdout] test tool::tests::test_registry_execute_all_with_failure ... ok
[INFO] [stdout] test tool::tests::test_registry_execute_handler_error ... ok
[INFO] [stdout] test tool::tests::test_registry_execute_unknown_tool ... ok
[INFO] [stdout] test tool::tests::test_registry_execute_missing_required_field ... ok
[INFO] [stdout] test tool::tests::test_registry_execute_schema_validation_failure ... ok
[INFO] [stdout] test tool::tests::test_registry_execute_valid ... ok
[INFO] [stdout] test tool::tests::test_registry_is_send_sync ... ok
[INFO] [stdout] test tool::tests::test_registry_overwrite_duplicate ... ok
[INFO] [stdout] test tool::tests::test_registry_register_and_get ... ok
[INFO] [stdout] test tool::tests::test_stop_decision_equality ... ok
[INFO] [stdout] test tool::tests::test_stop_decision_debug ... ok
[INFO] [stdout] test tool::tests::test_termination_reason_clone ... ok
[INFO] [stdout] test tool::loop_channel::tests::test_tool_loop_channel_backpressure ... ok
[INFO] [stdout] test tool::tests::test_stop_context_debug ... ok
[INFO] [stdout] test tool::tests::test_termination_reason_complete ... ok
[INFO] [stdout] test tool::tests::test_termination_reason_stop_condition_with_reason ... ok
[INFO] [stdout] test tool::tests::test_termination_reason_debug ... ok
[INFO] [stdout] test tool::tests::test_termination_reason_max_iterations ... ok
[INFO] [stdout] test tool::tests::test_termination_reason_stop_condition_without_reason ... ok
[INFO] [stdout] test tool::tests::test_tool_error_display ... ok
[INFO] [stdout] test tool::tests::test_tool_handler_definition ... ok
[INFO] [stdout] test tool::tests::test_tool_handler_is_object_safe ... ok
[INFO] [stdout] test tool::tests::test_termination_reason_loop_detected ... ok
[INFO] [stdout] test tool::tests::test_tool_handler_error ... ok
[INFO] [stdout] test tool::tests::test_tool_handler_execute ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_config_debug_with_event ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_config_debug_with_loop_detection ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_approval_modify ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_config_debug_with_stop_when ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_approval_deny ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_config_debug_without_event ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_detects_loop_warn ... ok
[INFO] [stdout] test mock::tests::test_mock_generate_empty_queue_panics - should panic ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_config_debug_without_stop_when ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_detects_loop_stop ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_emits_tool_execution_events ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_event_clone ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_event_debug ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_events_with_parallel_execution ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_max_iterations_exceeded ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_event_duration_is_positive ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_multiple_iterations ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_no_false_positive_different_args ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_no_timeout_completes_normally ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_detects_loop_inject_warning ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_no_tool_calls ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_emits_iteration_start ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_returns_termination_reason_complete ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_parallel_execution ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_returns_termination_reason_stop_condition ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_stop_after_tool_call_limit ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_stop_context_has_last_results ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_one_iteration ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_stop_on_first_response ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_stop_on_specific_tool ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_stream_detects_loop_stop ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_stream_no_tools ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_stop_continues_when_condition_not_met ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_stream_timeout ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_stream_emits_events ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_stream_one_iteration ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_stream_max_iterations ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_stream_stop_after_tool_execution ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_stream_stop_early ... ok
[INFO] [stdout] test tool::tests::test_tool_retry_config_partial_eq ... ok
[INFO] [stdout] test tool::tests::test_tool_retry_config_debug ... ok
[INFO] [stdout] test tool::tests::test_tool_retry_config_default ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_timeout_returns_immediately ... ok
[INFO] [stdout] test tool::tests::test_tool_result_full_message ... ok
[INFO] [stdout] test tool::tests::test_tool_retry_predicate_prevents_retry ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_usage_accumulation ... ok
[INFO] [stdout] test tool::tests::test_tool_loop_unknown_tool_sends_error_result ... ok
[INFO] [stdout] test tool::tests::test_usage_add_assign ... ok
[INFO] [stdout] test tool::tests::test_usage_add_assign_both_none ... ok
[INFO] [stdout] test usage::tests::test_compute_token_cost_large_values ... ok
[INFO] [stdout] test usage::tests::test_cost_add_assign ... ok
[INFO] [stdout] test usage::tests::test_cost_add_basic ... ok
[INFO] [stdout] test usage::tests::test_cost_add_saturates ... ok
[INFO] [stdout] test usage::tests::test_cost_checked_add ... ok
[INFO] [stdout] test usage::tests::test_cost_checked_add_overflow ... ok
[INFO] [stdout] test usage::tests::test_cost_clone_eq ... ok
[INFO] [stdout] test usage::tests::test_cost_default_is_zero ... ok
[INFO] [stdout] test usage::tests::test_cost_deserialization_overflow_fails ... ok
[INFO] [stdout] test usage::tests::test_cost_deserialization_recomputes_total ... ok
[INFO] [stdout] test usage::tests::test_cost_deserialization_without_total ... ok
[INFO] [stdout] test usage::tests::test_cost_display ... ok
[INFO] [stdout] test usage::tests::test_cost_display_sub_cent ... ok
[INFO] [stdout] test usage::tests::test_cost_display_zero ... ok
[INFO] [stdout] test usage::tests::test_cost_new_enforces_invariant ... ok
[INFO] [stdout] test usage::tests::test_cost_new_overflow_returns_none ... ok
[INFO] [stdout] test usage::tests::test_cost_serde_roundtrip ... ok
[INFO] [stdout] test usage::tests::test_cost_total_usd_exact ... ok
[INFO] [stdout] test usage::tests::test_cost_total_usd_sub_cent ... ok
[INFO] [stdout] test usage::tests::test_cost_total_usd_zero ... ok
[INFO] [stdout] test usage::tests::test_model_pricing_cache_without_pricing ... ok
[INFO] [stdout] test usage::tests::test_model_pricing_clone_eq ... ok
[INFO] [stdout] test usage::tests::test_model_pricing_compute_cost ... ok
[INFO] [stdout] test usage::tests::test_model_pricing_with_cache_tokens ... ok
[INFO] [stdout] test usage::tests::test_model_pricing_zero_tokens ... ok
[INFO] [stdout] test usage::tests::test_usage_add_assign ... ok
[INFO] [stdout] test usage::tests::test_usage_add_basic ... ok
[INFO] [stdout] test usage::tests::test_usage_add_both_none ... ok
[INFO] [stdout] test usage::tests::test_usage_add_saturates ... ok
[INFO] [stdout] test usage::tests::test_usage_clone_eq ... ok
[INFO] [stdout] test usage::tests::test_usage_debug_format ... ok
[INFO] [stdout] test usage::tests::test_usage_optional_fields_none ... ok
[INFO] [stdout] test usage::tests::test_usage_optional_fields_some ... ok
[INFO] [stdout] test usage::tests::test_usage_serde_roundtrip ... ok
[INFO] [stdout] test usage::tests::test_usage_tracker_clone ... ok
[INFO] [stdout] test usage::tests::test_usage_tracker_context_utilization ... ok
[INFO] [stdout] test usage::tests::test_usage_tracker_context_utilization_no_limit ... ok
[INFO] [stdout] test usage::tests::test_usage_tracker_context_utilization_zero_limit ... ok
[INFO] [stdout] test usage::tests::test_usage_tracker_cost ... ok
[INFO] [stdout] test usage::tests::test_usage_tracker_default ... ok
[INFO] [stdout] test usage::tests::test_usage_tracker_is_near_limit ... ok
[INFO] [stdout] test usage::tests::test_usage_tracker_is_near_limit_no_limit ... ok
[INFO] [stdout] test usage::tests::test_usage_tracker_new ... ok
[INFO] [stdout] test usage::tests::test_usage_tracker_record ... ok
[INFO] [stdout] test usage::tests::test_usage_tracker_reset ... ok
[INFO] [stdout] test usage::tests::test_usage_tracker_set_context_limit ... ok
[INFO] [stdout] test usage::tests::test_usage_tracker_with_context_limit ... ok
[INFO] [stdout] test tool::tests::test_tool_retry_succeeds_after_failures ... ok
[INFO] [stdout] test tool::tests::test_tool_retry_exhausted ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 362 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests llm_stack_core
[INFO] [stdout] 
[INFO] [stdout] running 54 tests
[INFO] [stdout] test src/chat.rs - chat::ChatMessage (line 76) ... ok
[INFO] [stdout] test src/chat.rs - chat::ChatMessage::from_json (line 188) ... ok
[INFO] [stdout] test src/chat.rs - chat::ChatMessage::to_json (line 170) ... ok
[INFO] [stdout] test src/error.rs - error (line 14) ... ok
[INFO] [stdout] test src/intercept.rs - intercept (line 42) ... ignored
[INFO] [stdout] test src/intercept.rs - intercept::Interceptor (line 92) ... ignored
[INFO] [stdout] test src/intercept.rs - intercept::InterceptorStack (line 228) ... ignored
[INFO] [stdout] test src/intercept.rs - intercept::interceptors::Retry (line 529) ... ignored
[INFO] [stdout] test src/intercept.rs - intercept::interceptors::Timeout (line 621) ... ignored
[INFO] [stdout] test src/intercept.rs - intercept::tool_interceptors::Approval (line 819) ... ignored
[INFO] [stdout] test src/mcp.rs - mcp (line 19) ... ignored
[INFO] [stdout] test src/mcp.rs - mcp (line 87) ... ignored
[INFO] [stdout] test src/chat.rs - chat::ChatMessage::from_json_owned (line 210) ... ok
[INFO] [stdout] test src/provider.rs - provider::DynProvider (line 85) - compile ... ok
[INFO] [stdout] test src/provider.rs - provider::JsonSchema (line 351) ... ok
[INFO] [stdout] test src/provider.rs - provider::ToolRetryConfig (line 258) ... ok
[INFO] [stdout] test src/registry.rs - registry (line 12) - compile ... ok
[INFO] [stdout] test src/registry.rs - registry (line 33) ... ignored
[INFO] [stdout] test src/registry.rs - registry::ProviderRegistry::register (line 219) ... ignored
[INFO] [stdout] test src/stream.rs - stream (line 10) - compile ... ok
[INFO] [stdout] test src/context.rs - context (line 18) ... ok
[INFO] [stdout] test src/structured.rs - structured (line 11) - compile ... ok
[INFO] [stdout] test src/tool/config.rs - tool::config::TerminationReason (line 368) - compile ... ok
[INFO] [stdout] test src/tool/config.rs - tool::config::LoopDetectionConfig (line 57) ... ok
[INFO] [stdout] test src/tool/config.rs - tool::config::ToolLoopConfig::loop_detection (line 246) ... ok
[INFO] [stdout] test src/tool/config.rs - tool::config::ToolLoopConfig::stop_when (line 221) - compile ... ok
[INFO] [stdout] test src/tool/config.rs - tool::config::ToolLoopConfig::max_depth (line 291) ... ok
[INFO] [stdout] test src/tool/config.rs - tool::config::ToolLoopConfig::timeout (line 266) ... ok
[INFO] [stdout] test src/tool/config.rs - tool::config::ToolLoopEvent (line 116) - compile ... ok
[INFO] [stdout] test src/chat.rs - chat::ChatResponse::into_tool_calls (line 386) ... ok
[INFO] [stdout] test src/error.rs - error::LlmError::is_retryable (line 138) ... ok
[INFO] [stdout] test src/context.rs - context::ContextWindow::needs_compaction (line 168) ... ok
[INFO] [stdout] test src/tool/handler.rs - tool::handler::ToolHandler (line 27) ... ok
[INFO] [stdout] test src/tool/helpers.rs - tool::helpers::tool_fn (line 21) ... ok
[INFO] [stdout] test src/chat.rs - chat (line 14) ... ok
[INFO] [stdout] test src/tool/loop_channel.rs - tool::loop_channel::tool_loop_channel (line 46) - compile ... ok
[INFO] [stdout] test src/tool/depth.rs - tool::depth (line 9) ... ok
[INFO] [stdout] test src/tool/mod.rs - tool (line 21) - compile ... ok
[INFO] [stdout] test src/tool/helpers.rs - tool::helpers::tool_fn_with_ctx (line 66) ... ok
[INFO] [stdout] test src/tool/output.rs - tool::output::ToolOutput (line 11) ... ok
[INFO] [stdout] test src/tool/mod.rs - tool (line 66) - compile ... ok
[INFO] [stdout] test src/tool/registry.rs - tool::registry::ToolRegistry (line 30) ... ignored
[INFO] [stdout] test src/tool/registry.rs - tool::registry::ToolRegistry<Ctx>::with_interceptors (line 214) ... ignored
[INFO] [stdout] test src/tool/registry.rs - tool::registry::ToolRegistry<Ctx>::without (line 151) ... ok
[INFO] [stdout] test src/usage.rs - usage::Cost (line 94) ... ok
[INFO] [stdout] test src/tool/registry.rs - tool::registry::ToolRegistry<Ctx>::only (line 182) ... ok
[INFO] [stdout] test src/usage.rs - usage::UsageTracker::is_near_limit (line 352) ... ok
[INFO] [stdout] test src/usage.rs - usage::UsageTracker (line 231) ... ok
[INFO] [stdout] test src/usage.rs - usage::ModelPricing (line 392) ... ok
[INFO] [stdout] test src/lib.rs - (line 28) - compile ... ok
[INFO] [stdout] test src/tool/depth.rs - tool::depth::LoopDepth (line 43) ... ok
[INFO] [stdout] test src/tool/depth.rs - tool::depth::LoopDepth (line 55) ... ok
[INFO] [stdout] test src/provider.rs - provider::ChatParams (line 175) ... ok
[INFO] [stdout] test src/tool/depth.rs - tool::depth::() (line 95) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 42 passed; 0 failed; 12 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 2.12s; merged doctests compilation took 1.96s
[INFO] running `Command { std: "docker" "inspect" "9d841c986e5ab8549496620a67f56e45efb7b440a6f8041fd45b762ee9de72af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9d841c986e5ab8549496620a67f56e45efb7b440a6f8041fd45b762ee9de72af", kill_on_drop: false }`
[INFO] [stdout] 9d841c986e5ab8549496620a67f56e45efb7b440a6f8041fd45b762ee9de72af
